iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
Software Development

從餐飲業轉職成小白工程師的所見所學系列 第 1

Git? GitHub? 到底是什麼? 對軟體工程師來說有什麼作用? Day1

  • 分享至 

  • xImage
  •  

還記得第一堂課程就是介紹 Git,第一次知道這個東西,對 Git 一點概念都沒有。
整天聽下來能理解的就只有,"神奇的時光機"這概念,讓我是滿頭問號。

漸漸一天一天的接觸並查找各方資料之後,慢慢理解了 Git、GitHub 到底是什麼。

Git 與 GitHub 是兩個相關但不同的概念,他們在軟體開發中是重要的角色。
讓我們來看看它們的意義與功能。

Git與版本控制系統

Git 是一種分散式版本控制系統(Distributed Version Control System)。

目前版本控制系統分為兩類,分散式版本控制系統( DVCS ) 、集中式版本控制系統( CVCS )

你可能會問說,什麼是分散式? 什麼是集中式? 版本控制系統又是什麼?
沒錯,在一開始的時候我也是滿滿的疑問🤣
我們先從版本控制系統開始!

版本控制系統

簡單的說,他就是一種工具,用於記錄、管理甚至恢復(undo)程式碼,就像是時間機器一樣!
對於軟體工程師來說,簡直是必學的技能。

講到這裡,相信有些小夥伴也跟我一樣: 「老師!能不能舉個例子!」

舉例來說: 我在玩暗黑靈魂3時,每次要打BOSS之前,都一定會先去存檔,避免等等死掉,全部都要從頭來過😭
Git 就是這樣的概念。
紀錄、存檔,即使檔案做壞掉了,也可以復原!

集中式 vs 分散式

我們先來看看它們的特色以及優缺點

集中式 :

  • 程式碼會儲存在中央服務器上
  • 開發者要從中央服務器取出程式碼進行編輯
  • 需要網路連接
  • 合併與解決衝突需要在中央服務器上執行

優點 :

  • 中央化管理,控制會更直觀
  • 操作簡單,適合小型團隊

缺點 :

  • 中央服務器故障會影響所有開發者
  • 需要網路連接
  • 合併、解決衝突會較複雜

分散式 :

  • 每一位開發者都有完整的程式碼
  • 開發者可以在本地(自己的主機)進行提交、合併、解決衝突
  • 開發上更加的靈活,不依賴中央服務器

優點 :

  • 彈性高,每位開發者都有一份完整的程式碼
  • 本地操作不用網路連接
  • 合併、解決衝突相對容易

缺點 :

  • 對於初學者來說,學習成本較高 (我當初也是搞了好久才慢慢上手🥹)
  • 資源消耗較多,因每位開發者都有完整的程式碼

結論 :

以我個人來說,我還是喜歡 Git DVCS 的方式,雖然對於新手來說會比較不好懂,但可以避免中央服務器不小心壞掉,全部人的心血都沒了的情況。
另外一點是,Git 對於軟體工程師來說,已經算是必備技能了,幾乎所有公司都在使用。

GitHub

GitHub 是基於 Git 的在線平台。
他提供了容易使用的介面,讓開發者能在網路上儲存、共享、管理自己的 Git。
這對於團隊合作、開源項目十分有用!
GitHub 也可以當作軟體工程師的作品集平台,若要找相關工作的話,最好經營一個自己的 GitHub,或許是不錯的加分喔!

相信講到這裡,你也更加了解 Git與 GitHub 的差異了。
若資訊有誤,歡迎指教!
感謝收看,我們明天見👋


下一篇
工欲善其事,必先利其器。好用的vscoe與套件! Day2
系列文
從餐飲業轉職成小白工程師的所見所學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言